﻿Public Class perEstado
    Inherits perPadrao

#Region "Declaração de variáveis"
    Private objBuscaId As New perProximoId
#End Region

#Region "Propriedades"

    Public ReadOnly Property sqlConsulta() As String
        Get
            Dim sSql As String

            sSql = "SELECT IDEstado, Estado,Sigla"
            sSql &= " FROM DC_Estados"
            sSql &= " ORDER BY Estado"

            Return sSql
        End Get
    End Property

#End Region

#Region "Métodos"

    Public Function inserirEstado(ByVal sEstado As String, _
                                  ByVal sSigla As String) As Int32

        Dim iIdEstado As Int32
        Dim sSql As String

        Try
            iIdEstado = Me.objBuscaId.BuscaID("IDEstado", "DC_Estados")

            sSql = "  INSERT INTO DC_Estados "
            sSql &= " ( "
            sSql &= "   IDEstado, "
            sSql &= "   Estado, "
            sSql &= "   Sigla "
            sSql &= " ) "
            sSql &= " VALUES "
            sSql &= " ( "
            sSql &= iIdEstado & ", "
            sSql &= "'" & sEstado & "', "
            sSql &= "'" & sSigla & "' "
            sSql &= " ) "

            MyBase.executarAcao(sSql)
            Return iIdEstado
        Catch ex As Exception
            Throw New Exception("Exceção no método 'inserirEstado'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Function

    Public Sub alterarEstado(ByVal iIdEstado As Int32, _
                             ByVal sEstado As String, _
                             ByVal sSigla As String)

        Dim sSql As String

        Try

            sSql = "  UPDATE DC_Estados SET "
            sSql &= "   Estado = '" & sEstado & "', "
            sSql &= "   Sigla = '" & sSigla & "' "
            sSql &= " WHERE "
            sSql &= "   IdEstado = " & iIdEstado

            MyBase.executarAcao(sSql)

        Catch ex As Exception
            Throw New Exception("Exceção no método 'alterarEstado'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Sub

    Public Sub excluirEstado(ByVal iIdEstado As Int32)

        Dim sSql As String

        Try
            sSql = "  DELETE FROM "
            sSql &= "   DC_Estados "
            sSql &= " WHERE "
            sSql &= "   IDEstado = " & iIdEstado

            MyBase.executarAcao(sSql)

        Catch ex As Exception
            Throw New Exception("Exceção no método 'excluirEstado'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Sub
    Public Function selecionarCampoEstado(ByVal sCampo As String, ByVal iIDEstado As Long) As DataTable
        Dim sSql As String
        Dim dsDados As New DataSet

        Try
            sSql = " SELECT " & sCampo
            sSql &= " FROM DC_Estados "

            If (iIDEstado > 0) Then
                sSql &= " WHERE IDEstado = " & iIDEstado
            End If

            dsDados = MyBase.executarConsulta(sSql, "DC_Estados")

            If Not dsDados Is Nothing AndAlso dsDados.Tables("DC_Estados").Rows.Count > 0 Then
                Return dsDados.Tables("DC_Estados")
            Else
                Return Nothing
            End If

        Catch ex As Exception
            Throw New Exception("Exceção no método 'selecionarCampoCidade'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Function
    Public Function selecionarEstado(ByVal iIdEstado As Int32) As DataRow
        Dim sSql As String
        Dim dsDados As New DataSet

        Try
            sSql = " SELECT * FROM DC_Estados "
            sSql &= " WHERE IDEstado = " & iIdEstado

            dsDados = MyBase.executarConsulta(sSql, "DC_Estados")

            If Not dsDados Is Nothing AndAlso dsDados.Tables("DC_Estados").Rows.Count > 0 Then
                Return dsDados.Tables("DC_Estados").Rows(0)
            Else
                Return Nothing
            End If

        Catch ex As Exception
            Throw New Exception("Exceção no método 'selecionarEstado'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Function
#End Region
End Class
